放到 TreeSet 或者 TreeMap 集合 key 部分的元素要想做到排序,包括两种方式:
- 放在集合中的元素实现
java.lang.Comparable 接口
- 在构造 TreeSet 或者 TreeMap 集合的时候给它传一个比较器对象
Comparable 和 Comparator 怎么选择呢?
当比较规则不会发生改变时,或者说当比较规则只有 1 个的时候,建议实现 Comparable 接口。
如果比较规则有多个,并且需要多个比较规则之间频繁切换,建议使用 Comparator 接口
Comparator 接口的设计符合 OCP 原则(开闭原则)
本章使用比较器的方式对集合中的元素进行排序,并展示匿名内部类的方式
1 | import java.util.Comparator; |